package cn.zjutleo.village_server.service;

import cn.zjutleo.village_server.dto.TenantInfoDto;
import cn.zjutleo.village_server.entity.Tenant;
import cn.zjutleo.village_server.exception.apiException.daoException.SelectException;
import cn.zjutleo.village_server.mapper.TenantMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author : Qin Zhenghan
 * @date : Created in 2021/9/25
 * @description: 租客相关服务类
 */
@Slf4j
@Service
public class TenantService {

    @Resource
    private TenantMapper tenantMapper;

    /**
     * 添加租客信息
     *
     * @param tenantInfoDto 租客信息DTO
     * @param userId        用户id
     */
    public void addTenantInfo(TenantInfoDto tenantInfoDto, Integer userId) throws SelectException {
        if (tenantMapper.selectByPrimaryKey(userId) != null) {
            updateTenantInfo(tenantInfoDto, userId);
        } else {
            Tenant tenant = new Tenant();
            tenant.setId(userId);

            log.info(tenant.getId().toString());

            tenant.setBeginTime(tenantInfoDto.getBeginTime());
            tenant.setEndTime(tenantInfoDto.getEndTime());
            tenantMapper.insertSelective(tenant);
        }
    }

    /**
     * 更新租客信息
     *
     * @param tenantInfoDto 租客信息DTO
     * @param userId        用户id
     */
    public void updateTenantInfo(TenantInfoDto tenantInfoDto, Integer userId) throws SelectException {
        Tenant tenant = tenantMapper.selectByPrimaryKey(userId);
        if (tenant == null) {
            throw new SelectException("租客信息不存在！");
        }
        tenant.setBeginTime(tenantInfoDto.getBeginTime());
        tenant.setEndTime(tenantInfoDto.getEndTime());
        tenantMapper.updateByPrimaryKeySelective(tenant);
    }
}
